

#定义类
class Dog:
    n=123#类变量,存在类内存里
    name = '我是类name'
    n_list = []
    #构造函数，在实例化时做一些类的初始化的工作
    def __init__(self,name):
        self.name = name#实例变量（静态属性），作用域就是实例本身,实例变量与类变量同名时，先找实例变量
    #类的方法，功能，，（动态属性）
    def bulk(self):#这个self就是接收d1,d2,,,,
        print("%s wants to bulk" % self.name)#d1.name
    #析构函数，最后执行
    def __del__(self):
        print('%s  彻底死了....'%self.name)

#把一个类变成一个具体对象的过程实例化（初始化一个类，造了一个对象），d1相当于存在内存里，长期保存，调用
d1 = Dog('张三')#实例化（初始化一个类，造了一个对象），d1相当于存在内存里，长期保存，调用
d2 = Dog('李四')#相当于Dog(d2,'李四')
d3 = Dog('刘炜')
d1.bulk()
del d1

'''
print('r1:',d1.n,d1.name)
#实例里面可以查类变量
d1.name = 'ouyang'#可以改
d1.cloth = '防弹衣'#类中没有定义，实例对象也可以加属性
# del d1.cloth
print('r1:',d1.n,d1.name)
print('r2:',d2.n,d2.name)
print(Dog.n)
d1.bulk()
d2.bulk()
d3.bulk()
d1.n_list.append("feom d1")
d2.n_list.append("feom d2")
d1.n = 'd1实例改变类变量'#在d1中存了一个新的变量，，开辟了新空间
print('r1:',d1.n,d1.name,d1.n_list)
print('r2:',d2.n,d2.name,d2.n_list)
print(Dog.n,Dog.n_list)
Dog.n='ABC'
print('r1:',d1.n)
print('r2:',d2.n)
print(d1.n,d1.name,d1.cloth)
print(Dog)
'''